<?php
/**
 * 快递100
 * @author Tongle Xu <xutongle@gmail.com> 2013-9-24
 * @copyright Copyright (c) 2003-2103 tintsoft.com
 * @license http://www.tintsoft.com
 * @version $Id$
 */
class Kuaidi {
	private $http;
	public function __construct() {
		$this->http = new HttpClient ();
	}

	/**
	 * 返回$data array 快递数组
	 * @param $name 快递名称 支持输入的快递名称如下
	 * (申通-EMS-顺丰-圆通-中通-如风达-韵达-天天-汇通-全峰-德邦-宅急送-安信达-包裹平邮-邦送物流
	 * DHL快递-大田物流-德邦物流-EMS国内-EMS国际-E邮宝-凡客配送-国通快递-挂号信-共速达-国际小包
	 * 汇通快递-华宇物流-汇强快递-佳吉快运-佳怡物流-加拿大邮政-快捷速递-龙邦速递-联邦快递-联昊通
	 * 能达速递-如风达-瑞典邮政-全一快递-全峰快递-全日通-申通快递-顺丰快递-速尔快递-TNT快递-天天快递
	 * 天地华宇-UPS快递-新邦物流-新蛋物流-香港邮政-圆通快递-韵达快递-邮政包裹-优速快递-中通快递) 中铁快运-宅急送-中邮物流
	 * @param $order 快递的单号 $data['ischeck'] ==1 已经签收 $data['data'] 快递实时查询的状态 array
	 */
	public function getOrder($name, $order) {
		$expressName = $this->expressName ();
		$result = $this->http->get ( "http://www.kuaidi100.com/query?type={$expressName[$name]}&postid={$order}" );
		if ($result->code () == 200) {
			$res = $result->data ();
			return json_decode ( $res, true );
		}
		return false;
	}

	/**
	 * 获取对应名称和对应传值的方法
	 */
	private function expressName() {
		$result = $this->http->get ( "http://www.kuaidi100.com/" );
		if ($result->code () == 200) {
			preg_match_all ( "/data\-code\=\"(?P<name>\w+)\"\>\<span\>(?P<title>.*)\<\/span>/iU", $result->data (), $data );
			$name = array ();
			foreach ( $data ['title'] as $k => $v ) {
				$name [$v] = $data ['name'] [$k];
			}
			return $name;
		}
		return false;
	}
}